In industry, CAD systems are used to aid in the design of an object by allowing designers to visualize and to validate the object before it is physically created. In this way, a designer can determine whether an object is suitable for its intended application, and make any necessary refinements, without resorting to the expense of configuring equipment, making dies and acquiring raw materials to actually make the object. As part of the process of three-dimensionally modeling the object, dimensions, geometrical tolerances, notes and symbols (referred to herein as 3D annotations) are added to the modeled object based upon the intended application, as well as the capabilities of the equipment that will fabricate the object.
Many objects share similar geometrical features, allowing designers to develop geometrical templates that can be reused for common features. These templates are stored in libraries and allow designers to avoid remodeling the geometrical features from scratch. Thus, once a particular geometrical feature has been created it can be reused in many different designs, or be used as a basis from which to design a variant of the geometrical feature, reducing the amount of time spent creating the basic building blocks used to model the object.
However, even when a particular geometrical feature is available for reuse as a template, a designer using a conventional CAD system must instantiate the geometrical feature and then manually add 3D annotations to sub-features of the geometrical feature. For example, if the designer instantiates a template for a countersink hole, the designer must then manually define the 3D annotations for the diameter and depth of the hole, as well as the depth and interior angle of the countersink. Therefore, at least part of the efficiency gained by reusing the geometrical feature is lost to manual entry of the 3D annotations.
One conventional solution is to collect common 3D annotations in a library from which the designer can draw when creating the three-dimensional model of the object. The 3D annotations in the library are then reused much like the geometrical templates. However, a user still has to manually connect each 3D annotation to the corresponding geometries to which the 3D annotation applies. The number of 3D annotations can be extensive, and a designer is unlikely to remember all of the geometries to which a 3D annotation applies. Therefore, even when using a library of 3D annotations, applying the 3D annotations to a three-dimensionally modeled object still involves time-consuming and inefficient manual input from the designer.
Accordingly, a need exists for a system and associated methodology of applying 3D annotations to a geometrical feature of a three-dimensional model of an object without requiring the time-consuming manual entry of the conventional methods described above.